home *** CD-ROM | disk | FTP | other *** search
- ; raster assembly functions for blitter
- ; operations.
-
- include "INCLUDE:exec/types.i"
- include "INCLUDE:hardware/custom.i"
- include "INCLUDE:hardware/blit.i"
- include "INCLUDE:hardware/dmabits.i"
-
-
- SECTION BLITCLEARMEM,CODE
-
- XREF _custom
- XDEF _blitclearmem
-
-
- _blitclearmem:
- lea _custom,a1
- btst #DMAB_BLTDONE-8,dmaconr(a1)
- waitblit1:
- btst #DMAB_BLTDONE-8,dmaconr(a1)
- bne waitblit1
- move.l a0,bltdpt(a1)
- clr.w bltdmod(a1)
- clr.w bltcon1(a1)
- move.w #DEST,bltcon0(a1)
- move.w d0,bltsize(a1)
- rts
-
-
- SECTION BLITLINE,CODE
-
- XREF _custom
- XDEF _blitline
-
-
- _blitline:
- lea _custom,a1
- sub.w d0,d2
- bmi xneg
- sub.w d1,d3
- bmi yneg
- cmp.w d3,d2
- bmi ygtx
- moveq.l #OCTANT1+LINEMODE,d5
- bra lineagain
- ygtx:
- exg d2,d3
- moveq.l #OCTANT2+LINEMODE,d5
- bra lineagain
- yneg:
- neg.w d3
- cmp.w d3,d2
- bmi ynygtx
- moveq.l #OCTANT8+LINEMODE,d5
- bra lineagain
- ynygtx:
- exg d2,d3
- moveq.l #OCTANT7+LINEMODE,d5
- bra lineagain
- xneg:
- neg.w d2
- sub.w d1,d3
- bmi xyneg
- cmp.w d3,d2
- bmi xnygtx
- moveq.l #OCTANT4+LINEMODE,d5
- bra lineagain
- xnygtx:
- exg d2,d3
- moveq.l #OCTANT3+LINEMODE,d5
- bra lineagain
- xyneg:
- neg.w d3
- cmp.w d3,d2
- bmi xynygtx
- moveq.l #OCTANT5+LINEMODE,d5
- bra lineagain
- xynygtx:
- exg d2,d3
- moveq.l #OCTANT6+LINEMODE,d5
- lineagain:
- mulu.w d4,d1
- ror.l #4,d0
- add.w d0,d0
- add.l d1,a0
- add.w d0,a0
- swap d0
- or.w #$BFA,d0
- lsl.w #2,d3
- add.w d2,d2
- move.w d2,d1
- lsl.w #5,d1
- add.w #$42,d1
- btst #DMAB_BLTDONE-8,dmaconr(a1)
- waitblit2:
- btst #DMAB_BLTDONE-8,dmaconr(a1)
- bne waitblit2
- move.w d3,bltbmod(a1)
- sub.w d2,d3
- ext.l d3
- move.l d3,bltapt(a1)
- bpl lineover
- or.w #SIGNFLAG,d5
- lineover:
- move.w d0,bltcon0(a1)
- move.w d5,bltcon1(a1)
- move.w d4,bltcmod(a1)
- move.w d4,bltdmod(a1)
- sub.w d2,d3
- move.w d3,bltamod(a1)
- move.w #$8000,bltadat(a1)
- moveq.l #-1,d5
- move.l d5,bltafwm(a1)
- move.l a0,bltcpt(a1)
- move.l a0,bltdpt(a1)
- move.w d1,bltsize(a1)
- rts
- end
-
-